package com.hp.gxw.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author huangping
 * @since 2023-10-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SaleOrder implements Serializable {

    private static final long serialVersionUID=1L;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 客户订单号
     */
    private String customerOrder;

    /**
     * 内部订单号
     */
    private String orderNo;

    /**
     * 父级订单号
     */
    private String parentOrderNo;

    /**
     * 关联订单号
     */
    private String relatedOrder;

    /**
     * 客户编码
     */
    private String customerCode;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 业务员
     */
    private String personName;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 定价状态
     */
    private Boolean fixStatus;

    /**
     * 结算状态
     */
    private Boolean status;

    /**
     * U8-订单编号
     */
    private String csocode;

    /**
     * U8-销售类型编码
     */
    private String cstcode;

    /**
     * U8-制单日期
     */
    private String ddate;

    /**
     * U8-部门编码
     */
    private String cdepcode;

    /**
     * U8-币种
     */
    private String cexchName;

    /**
     * U8-汇率
     */
    private String iexchrate;

    /**
     * U8-制单人
     */
    private String cmaker;

    /**
     * U8-审核人
     */
    private String cverifier;

    /**
     * U8-审核日期
     */
    private String dverifydate;

    /**
     * U8-审核时间
     */
    private String dverifysystime;

    /**
     * U8-生成的销售订单ID
     */
    private String autoId;

    /**
     * 承揽商
     */
    private String cls;

    /**
     * 产品类别
     */
    private String cplb;

    /**
     * 订单属性
     */
    private String ddsx;

    /**
     * 本地添加
     */
    private Boolean custom;

    /**
     * 业务类型
     */
    private String ywlx;

    @TableField(exist = false)
    private List<SaleOrderDetails> detailsList;
}
